package me.buick.util.snmp.core.dao;

import java.util.List;

import me.buick.util.snmp.core.pojo.ProcessInfoPojo;

/**
 * 
 * This DAO is used to get All the Process information on remote system.
 * 
 * Including process name, pid, parameters, status, state
 * 
 * @author buick
 *
 */

public interface ProcessInfoDAO {
	
	/**
	 * 
	 * Get Process Info List for all the threads on remote system
	 * 
	 * @return List of ProcessInfoPojo
	 */
	public List<ProcessInfoPojo> getAllProcessInfo();
	
	/**
	 * 
	 * Get Process Info List according to the given search criteria
	 * 
	 * The search criteria is a simple comma divided string, the library will divided the 
	 * input String by commas, and then, every elements will be used for a search rule to
	 * get matched process on remote system 
	 * 
	 * @param searchCriteria
	 * @return List of ProcessInfoPojo
	 */
	public List<ProcessInfoPojo> getProcessInfo(String searchCriteria);
	
	/**
	 * 
	 * get Process info according to the given PID.
	 * 
	 * Because the PID is a unique ID for every process on remote system, so, this method
	 * is always used for accurated search result.
	 * 
	 * @param pid
	 * @return ProcessInfoPojo
	 */
	public ProcessInfoPojo getProcessInfoByPID(int pid);
	
}
